Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

325
Visualizações
¿Cómo agregar el prefijo "api" a todos los controladores en com.myproject.api?

Estaba tratando de encontrarlo, pero encontré muchos escenarios diferentes, pero no este.

Lo que quiero hacer es agregar el prefijo "/api/" a todas las rutas en los controladores en com.myproject.api. Quiero "/api/*" para todos los controladores del paquete com.myapp.api y ningún prefijo para todos los controladores de com.myapp.web

¿Es posible con Spring/Spring Boot?

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Si está utilizando Springboot, puede agregar lo siguiente:

 server.servlet.context-path=/api

al archivo application.properties.

about 4 years ago · Santiago Trujillo Relatório

0

Con Spring Boot, esto funcionó para mí:

 @Configuration @EnableWebMvc public class WebMvcConfiguration implements WebMvcConfigurer { @Override public void configurePathMatch(PathMatchConfigurer configurer) { configurer.addPathPrefix("/api", HandlerTypePredicate.forBasePackage("com.your.package")); } }
about 4 years ago · Santiago Trujillo Relatório

0

Logré el resultado que creo que está buscando de la siguiente manera, siempre que esté usando MVC.

Primero haga una clase de configuración que implemente WebMvcRegistrations

 @Configuration public class WebMvcConfig implements WebMvcRegistrations { @Value("${Prop.Value.String}") //"api" private String apiPrefix; @Value("${Prop.Package.Names}") //["com.myapp.api","Others if you like"] private String[] prefixedPackages; @Override public RequestMappingHandlerMapping getRequestMappingHandlerMapping() { return new PrefixedApiRequestHandler(apiPrefix,prefixedPackages); } }

Luego, cree una clase que amplíe RequestMappingHandlerMapping y anule getMappingForMethod

 @Log4j2 public class PrefixedApiRequestHandler extends RequestMappingHandlerMapping { private final String prefix; private final String[] prefixedPackages; public PrefixedApiRequestHandler(final String prefix, final String... packages) { super(); this.prefix = prefix; this.prefixedPackages = packages.clone(); } @Override protected RequestMappingInfo getMappingForMethod(final Method method, final Class<?> handlerType) { RequestMappingInfo info = super.getMappingForMethod(method, handlerType); if (info == null) { return null; } for (final String packageRef : prefixedPackages) { if (handlerType.getPackageName().contains(packageRef)) { info = createPrefixedApi().combine(info); log.trace("Updated Prefixed Mapping " + info); return info; } } log.trace("Skipped Non-Prefixed Mapping " + info); return info; } private RequestMappingInfo createPrefixedApi() { String[] patterns = new String[prefix.length()]; for (int i = 0; i < patterns.length; i++) { // Build the URL prefix patterns[i] = prefix; } return new RequestMappingInfo( new PatternsRequestCondition(patterns, getUrlPathHelper(), getPathMatcher(), useSuffixPatternMatch(), useTrailingSlashMatch(), getFileExtensions()), new RequestMethodsRequestCondition(), new ParamsRequestCondition(), new HeadersRequestCondition(), new ConsumesRequestCondition(), new ProducesRequestCondition(), null); } }

Luego debería ver /api/(ControllerMapping) para todas las asignaciones, solo en los paquetes especificados. Nota: tengo @RequestMapping("/") en la parte superior de mi controlador.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda